import cv2
import numpy as np

# 读取图像
image = cv2.imread('img_2.png')  # 替换为你的图像路径

# 转换为HSV颜色空间
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# 更精确的粉色HSV范围（需根据实际图像调整，这里是示例范围）
lower_pink = np.array([130, 30, 30])
upper_pink = np.array([180, 255, 255])

# 创建掩码
mask = cv2.inRange(hsv, lower_pink, upper_pink)

# 形态学操作：膨胀和腐蚀，填充孔洞
kernel = np.ones((3, 3), np.uint8)
mask = cv2.dilate(mask, kernel, iterations=1)
mask = cv2.erode(mask, kernel, iterations=1)

# 应用掩码到原始图像
result = cv2.bitwise_and(image, image, mask=mask)

# 显示原始图像、掩码和结果
cv2.imshow('Original Image', image)
cv2.imshow('Mask', mask)
cv2.imshow('Result', result)

cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存结果
cv2.imwrite('segmentation_result.png', result)